import request from '@/utils/request'; // 引入 axios 实例
import { Message } from 'element-ui'; // 如果使用的是 element-ui 则引入 Message
import { getBaseURL } from '@/utils/request';
import axios from 'axios'

// 下载封装
/**
 * 下载封装
 * 使用方法:  import { downloadFile } from "@/utils/download"
 * 
 * @param url 地址
 * @param params 传递参数
 * @param filename 下载文件名
 * @param suffix 文件后缀 无后缀默认.xlsx
 */
export const downloadFile = (url, params, filename, suffix) => {
    axios.get(`${getBaseURL()}${url}`, {
        responseType: 'blob',
        headers: {
            Token: sessionStorage.getItem('token')
        },
        params: params
    }).then((response) => {
        let url = window.URL.createObjectURL(new Blob([response.data]));
        let link = document.createElement('a');
        link.style.display = 'none';
        link.href = url;
        link.setAttribute('download', filename + '.' + (suffix === undefined ? 'xlsx' : suffix))
        document.body.appendChild(link);
        link.click();
        // 移除链接元素
        document.body.removeChild(link);
        if (response.status === 200) {
            Message.success(`${filename}   下载成功`);
        } else {
            Message.error(`${filename}   下载失败`);
        }
    }).catch((error) => {
        console.log(error);
        Message.error(`下载失败,请联系管理员! ${error.message}`)
        console.error(error.message)
    });
}

